import re
import pandas as pd
import jieba    #结巴分词库
import wordcloud   #词云展示库
import numpy as np    #numpy库
import matplotlib.pyplot as plt
from PIL import Image   #图像处理库
import collections #词频统计库

#读取文本文件
with open('article1.txt') as fn:
    #使用read读取整个文本
    string_data=fn.read()

#建立正则匹配模式
p=re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"')

string_data=re.sub(p,'',string_data)

#文本分词
seg_list_text=jieba.cut(string_data,cut_all=False)
#停用词-----举出部分而已
remove_word=['的','，','和','是','对于','。','、','会',' ']
object_list=[i for i in seg_list_text if i not in remove_word]

#词频统计
world_count=collections.Counter(object_list)
word_counts_top5=world_count.most_common(5)   #获取前5个频率最高的词
for w,c in word_counts_top5:
    print(w,c)

#词频展示
#定义词频的背景
mask=np.array(Image.open('wordcloud.jpg'))
wc=wordcloud.WordCloud(
    font_path='C:/Windows/Fonts/simhei.ttf',
    mask=mask,
    max_words=200,
    max_font_size=100
)

#从字典生成词云
wc.generate_from_frequencies(world_count)
#从背景图建立颜色方案
image_colors=wordcloud.ImageColorGenerator(mask)
#画图
plt.imshow(wc)
plt.axis('off')

